<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>评论回车发布</title>
    <style>
        .wrapper {
            min-width: 400px;
            max-width: 800px;
            display: flex;
            justify-content: flex-end;
        }

        .avatar {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            overflow: hidden;
            background: url(./images/avatar.jpg) no-repeat center / cover;
            margin-right: 20px;
        }

        .wrapper textarea {
            outline: none;
            border-color: transparent;
            resize: none;
            background: #f5f5f5;
            border-radius: 4px;
            flex: 1;
            padding: 10px;
            transition: all 0.5s;
            height: 30px;
        }

        .wrapper textarea:focus {
            border-color: #e4e4e4;
            background: #fff;
            height: 50px;
        }

        .wrapper button {
            background: #00aeec;
            color: #fff;
            border: none;
            border-radius: 4px;
            margin-left: 10px;
            width: 70px;
            cursor: pointer;
        }

        .wrapper .total {
            margin-right: 80px;
            color: #999;
            margin-top: 5px;
            opacity: 0;
            transition: all 0.5s;
        }

        .list {
            min-width: 400px;
            max-width: 800px;
            display: flex;
        }

        .list .item {
            width: 100%;
            display: flex;
            opacity: 0;
        }

        .list .item .info {
            flex: 1;
            border-bottom: 1px dashed #e4e4e4;
            padding-bottom: 10px;
        }

        .list .item p {
            margin: 0;
        }

        .list .item .name {
            color: #FB7299;
            font-size: 14px;
            font-weight: bold;
        }

        .list .item .text {
            color: #333;
            padding: 10px 0;
        }

        .list .item .time {
            color: #999;
            font-size: 12px;
        }
    </style>
</head>

<body>
    <div class="wrapper">
        <i class="avatar"></i>
        <textarea id="tx" placeholder="发一条友善的评论" rows="2" maxlength="200"></textarea>
        <button>发布</button>
    </div>
    <div class="wrapper">
        <span class="total">0/200字</span>
    </div>
    <div class="list">
        <div class="item">
            <i class="avatar"></i>
            <div class="info">
                <p class="name">清风徐来</p>
                <p class="text">大家都辛苦啦，感谢各位大大的努力，能圆满完成真是太好了[笑哭][支持]</p>
                <p class="time">2022-10-10 20:29:21</p>
            </div>
        </div>
    </div>
    <script>
        // 获取元素
        const tx = document.querySelector('#tx')
        const total = document.querySelector('.total')
        // 监听事件 input 事件
        tx.addEventListener('input', function () {
            // 用户输入内容
            // 拿到用户输入内容长度 需要渲染到total 文案提示
            total.innerHTML = `${tx.value.length}/200字`
        })
        // 输入框获取焦点 下面文案要进行显示  失去焦点  就隐藏
        tx.addEventListener('focus', function () {
            // 下面文案要进行显示
            total.style.opacity = 1
        })
        // 失去焦点
        tx.addEventListener('blur', function () {
            // 下面文案要进行隐藏
            total.style.opacity = 0
            // tx.value = ''
            total.innerHTML = `0/200字`
        })
        // 注册点击事件
        const btn = document.querySelector('.wrapper button')
        const item = document.querySelector('.item')
        const text = document.querySelector('.text')

        btn.addEventListener('click', function () {
            item.style.opacity = 1
            console.log(tx.value);
            text.innerHTML = tx.value
            tx.value = ''
        })

        tx.addEventListener('keyup', function (e) {
            // 优化小需求   清除空格符
            // 如果输入的内容检测出来为空格 是不应该被渲染
            // tx.value.trom() 用户输入的内容 并且经过处理空格之后的 只要他不是'' 才让她渲染

            if (e.key === 'Enter') {
                // 如果用户输入的内容不等空 就是有内容 渲染
                if (tx.value.trim() !== '') {
                    // 评论内容的盒子显示
                    item.style.opacity = 1
                    // 拿到输入文本域里面的内容
                    // tx.value 丢到text的innerHTML
                    text.innerHTML = tx.value
                }
                // 最后需要把输入框的内容清空 重置
                total.innerHTML = '0/200字'
                // 用户只要按下回车键 都得清空
                tx.value = ''
            }

        })
    </script>
</body>

</html>